Generation of Efficient Interprocedural Analyzers with PAG
نویسندگان
چکیده
To produce high quality code, modern compilers use global optimization algorithms based on abstract interpretation. These algorithms are rather complex; their implementation is therefore a non{trivial task and error{prone. However, since they are based on a common theory , they have large similar parts. We conclude that analyzer writing better should be replaced with analyzer generation. We present the tool PAG that has a high level functional input language to specify data ow analyses. It ooers the speciication of even recursive data structures and is therefore not limited to bit vector problems. PAG generates eecient analyzers which can be easily integrated in existing compilers. The analyzers are interprocedural, they can handle recursive procedures with local variables and higher order functions. PAG has successfully been tested by generating several analyzers (e.g. alias analysis, constant propagation) for an industrial quality ANSI-C and Fortran90 compiler.
منابع مشابه
Generating program analyzers
In this work the automatic generation of program analyzers from concise specifications is presented. It focuses on provably correct and complex interprocedural analyses for real world sized imperative programs. Thus, a powerful and flexible specification mechanism is required, enabling both correctness proofs and efficient implementations. The generation process relies on the theory of data flo...
متن کاملGenerating Analyzers with PAG
To produce high quality code, modern compilers use global optimization algorithms based on abstract interpretation. These algorithms are rather complex; their implementation is therefore a non{trivial task and error{prone. However, since they are based on a common theory, they have large similar parts. We conclude that analyzer writing better should be replaced with analyzer generation. We pres...
متن کاملCache Behavior Prediction by Abstract Interpretation
Abstract interpretation is a technique for the static detection of dynamic proper ties of programs It is semantics based that is it computes approximative properties of the semantics of programs On this basis it allows for correctness proofs of anal yses It replaces commonly used ad hoc techniques by systematic provable ones and it allows the automatic generation of analyzers from speci cations...
متن کاملApplying Compiler Techniques to Cache Behavior Prediction
In previous work 1], we have developed the theoretical basis for the prediction of the cache behavior of programs by abstract interpretation. Abstract interpretation is a technique for the static analysis of dynamic properties of programs. It is semantics based, that is, it computes approximative properties of the semantics of programs. On this basis, it allows for correctness proofs of analyse...
متن کاملAnalysis of Loops
Programs spend most of their time in loops and procedures. Therefore, most program transformations and the necessary static analyses deal with these. It has been long recognized, that diierent execution contexts for procedures may induce diierent execution properties. There are well established techniques for interprocedural analysis like the call string approach. Loops have not received simila...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1995